In many applications it is desirable to provide a true average value of a relatively small number of signal samples. For example, in a tracking servo system for a hard disk drive device, a pattern is recorded in a servo area on the disk which, when reproduced, produces a series of pulses in a repeating pattern which represents the position of the servo head. The difference in pulse heights between particular pulses in each cycle of the pattern provides tracking information for centering the servo head over the track, and it is highly desirable to make an accurate measurement of the pulse heights within a short period of time to avoid errors in the servo control operation. In order to reduce noise problems that may be caused by a defect in the recorded servo pattern or in the servo head, corresponding pulses in a number of cycles of the pattern are averaged and the pulse height difference between the averaged pulses is used to adjust the position of the servo head to correct drift.
Since it is advantageous to be able to calculate the tracking information within a short period of time, generally pulses from only a small number of such cycles, for example four, are averaged. However, prior art averaging circuits have been unable to meet the combined requirement of speed and accuracy. A conventional peak hold system is sensitive to noise spikes, in that samples other than the sample in which the noise spike occurs may not contribute significantly to the detected value, thereby resulting in erroneous values due to the noise spike. A true integrating system, on the other hand, requires a large number of samples, as the time constant in the detector system must be long with respect to the rise time of the sampled pulse.